In systems employing the Bluetooth Low Energy (BLE) protocol, devices are designated as either master or slave. When a connection is established, the master device supplies the slave device with data defining the channel and timing of data exchange between the master and slave. This data specifies a connection interval and a slave latency among other parameters. The connection interval establishes the time between the start of a data packet exchange sequence called a connection event. Latency defines the number of communication intervals that may be missed or ignored by the slave before losing the connection.
Communication events are started by the master and then the master and slave alternate sending and receiving packets until either side stops sending packets. The master begins by transmitting a poll frame. If the slave has data ready at the Medium Access Control (MAC) level, then it transmits a data frame back to the master in response to the poll. If the slave does not have data available to send when it receives a poll frame from the master, then the slave transmits a null data. When data becomes available for transmission at the slave device, it must wait for the next poll before transmitting the data frame.
The master may transmit an acknowledgement frame upon receiving the data frame. If the data transmission from the slave fails, then the slave will resend the data in the same connection interval if a negative acknowledgment is received, otherwise the slave will resend the data in the next connection interval. After a predetermined number of failed or missing transmissions by the slave within the same connection interval, connection interval will be lost.
Because the slave must wait for a poll frame before transmitting data, stringent Quality of Service (QoS) requirements for certain applications may not be supported in a BLE system. In particular, it may be difficult to meet jitter and frame error rate requirements for some applications using the existing BLE protocol.